//
//  BoletoBanco1BradescoTests.m
//  iBoleto
//
//  Created by Diego Fincatto on 14/01/11.
//  Copyright 2011 Wmix Distribuidora Ltda. All rights reserved.

#import "BoletoBanco1BradescoTests.h"
#import "BoletoDados.h"
#import "BoletoBanco.h"
#import "BoletoBancoBradesco.h"
#import "BoletoUtil.h"

@implementation BoletoBanco1BradescoTests

- (void)setUp {
    [super setUp];
    
    //data de vencimento
    dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"dd/MM/yyyy"];
    
    //cria um dado de boleto
    boletoDados = [[BoletoDados alloc] init];
    [boletoDados setAgencia:@"2657"];
    [boletoDados setCarteira:@"9"];
    [boletoDados setCodigoFornecidoAgencia:@"60"];
    [boletoDados setCodigoOperacao:@""];
    [boletoDados setDataVencimento:[dateFormatter dateFromString:@"17/01/2011"]];
    [boletoDados setNossoNumero:@"80167441"];
    [boletoDados setValor:[NSDecimalNumber decimalNumberWithString:@"313.50"]];
}

- (void)tearDown {
    [boletoDados release], boletoDados = nil;
    [dateFormatter release], dateFormatter = nil;
    [super tearDown];
}

- (void)testCodigoBanco {
    id<BoletoBanco> boletoBanco = [[BoletoBancoBradesco alloc] initWithDados:boletoDados];
    STAssertEqualObjects(@"237", [boletoBanco codigoBanco], nil);
    [boletoBanco release], boletoBanco = nil;
}

- (void)testMoeda {
    id<BoletoBanco> boletoBanco = [[BoletoBancoBradesco alloc] initWithDados:boletoDados];
    STAssertEqualObjects(@"9", [boletoBanco moeda], nil);
    [boletoBanco release], boletoBanco = nil;
}

- (void)testCampoLivre {
    id<BoletoBanco> boletoBanco = [[BoletoBancoBradesco alloc] initWithDados:boletoDados];
    STAssertEqualObjects(@"2657"@"09"@"00080167441"@"0000060"@"0", [boletoBanco campoLivre], nil);
    [boletoBanco release], boletoBanco = nil;
}

- (void)testCampo1 {
    id<BoletoBanco> boletoBanco = [[BoletoBancoBradesco alloc] initWithDados:boletoDados];
    STAssertEqualObjects(@"2379265701", [boletoBanco campo1], nil);
    [boletoBanco release], boletoBanco = nil;    
}

- (void)testCampo2 {
    id<BoletoBanco> boletoBanco = [[BoletoBancoBradesco alloc] initWithDados:boletoDados];
    STAssertEqualObjects(@"90008016744", [boletoBanco campo2], nil);
    [boletoBanco release], boletoBanco = nil;        
}

- (void)testCampo3 {
    id<BoletoBanco> boletoBanco = [[BoletoBancoBradesco alloc] initWithDados:boletoDados];
    STAssertEqualObjects(@"41000006001", [boletoBanco campo3], nil);
    [boletoBanco release], boletoBanco = nil;        
}

- (void)testCampo4 {
    id<BoletoBanco> boletoBanco = [[BoletoBancoBradesco alloc] initWithDados:boletoDados];
    STAssertEqualObjects(@"5", [boletoBanco campo4], nil);
    [boletoBanco release], boletoBanco = nil;        
}

- (void)testCampo5 {
    id<BoletoBanco> boletoBanco = [[BoletoBancoBradesco alloc] initWithDados:boletoDados];
    STAssertEqualObjects(@"48500000031350", [boletoBanco campo5], nil);
    [boletoBanco release], boletoBanco = nil;        
}

- (void)testGeraLinhaDigitavelNossoNumero {
    id<BoletoBanco> boletoBanco = [[BoletoBancoBradesco alloc] initWithDados:boletoDados];
    STAssertEqualObjects(@"23792.65701  90008.016744  41000.006001  5  48500000031350", [boletoBanco linhaDigitavel], nil);
    [boletoBanco release], boletoBanco = nil;   
}

- (void)testGeraCodigoBarrasNossoNumero {
    id<BoletoBanco> boletoBanco = [[BoletoBancoBradesco alloc] initWithDados:boletoDados];
    STAssertEqualObjects(@"23795485000000313502657090008016744100000600", [boletoBanco codigoDeBarras], nil);
    [boletoBanco release], boletoBanco = nil;
}

@end
